﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing.Design;
using System.ComponentModel;
using System.Drawing;

namespace Axe.ComponentModel
{
    /// <summary>
    /// Добавляет картинки, соответствующие каждому члену перечисления
    /// </summary>
    public abstract class IconValueEditor : UITypeEditor
    {
        public override bool GetPaintValueSupported(ITypeDescriptorContext context)
        {
            return true;
        }

        public override void PaintValue(PaintValueEventArgs e)
        {
            // достаем картинку из ресурсов
            Bitmap iconBitmap = GetResourceBitmap(e.Value);

            Rectangle destRect = e.Bounds;
            iconBitmap.MakeTransparent();

            // и отрисовываем
            e.Graphics.DrawImage(iconBitmap, destRect);
        }

        protected abstract Bitmap GetResourceBitmap(object value);
    } 
}
